package com.my.controller;


import com.alibaba.fastjson.JSONObject;
import com.my.bean.OrderVip;
import com.my.bean.ResultPage;
import com.my.bean.User;
import com.my.bean.VoPage;
import com.my.service.OrderVipService;
import com.my.util.SessionUtil;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.*;

import org.apache.log4j.Logger;

import javax.servlet.http.HttpSession;

/**
 * <p>
 * 会员档案资料存储（订单） 前端控制器
 * </p>
 *
 * @author 冯政尚
 * @since 2018-08-24
 */
@Controller
@RequestMapping("/orderVip")
public class OrderVipController {

   //注入
   @Autowired
   OrderVipService orderVipService;
   //创建日志Logger对象
   Logger logger  = Logger.getLogger(OrderVipController.class);

   /**
    * 添加订单
    * @param
    * @return 订单信息
    */
   @RequestMapping("/insertOrderVip")
   @ResponseBody
   public String insertOrderVip(String param,HttpSession session){
      boolean admin=false;
      //如果事超级管理员  即可查看所有的房间  判断是否为超级管理员
      if(SessionUtil.getSessionUser(session).getRoles().getRoleValue().equals("9f77d5a8-75c6-4d06-adf9-a37e727d491a")){
         admin=true;
      }

      OrderVip orderVip = JSONObject.parseObject(param,OrderVip.class);
      //按照创建时间来倒叙排序
      orderVip.setCreateTime(new Date().getTime());
      //每个房间只能有一个订单,有两个订单就提示该房间有订单能不能在添加订单了.
      //ServiceImpl实现功能
      //调用serviceImpl层的方法
      //默认添加的是未成功的订单  1是成功 2是未成功
      //orderVip.setOrderStatus(2);
      Long areaid =((User)session.getAttribute("user")).getAreaId();
      return orderVipService.selectByHomeId(orderVip,areaid,admin);


   }


   /**
    * 查询所有订单(分页查询)
    * @param voPage
    * @return 所有的订单数据
    */
   @RequestMapping("/selectOrderVip")
   @ResponseBody
   public ResultPage<OrderVip> selectOrderVip(String lin,String data, VoPage voPage,HttpSession session){
      boolean admin=false;
      //如果事超级管理员  即可查看所有的房间  判断是否为超级管理员
      if(SessionUtil.getSessionUser(session).getRoles().getRoleValue().equals("9f77d5a8-75c6-4d06-adf9-a37e727d491a")){
         admin=true;
      }
      Map map = new HashMap();
      map.put("lin",lin);
      map.put("data",data);
      Long areaid = ((User)session.getAttribute("user")).getAreaId();
      ResultPage<OrderVip> list = orderVipService.selectMyPage(map,voPage,areaid,admin);
      logger.info("list:"+list);
      logger.info("查询成功");
      return list;
   }





   /**
    * 修改订单
    */
   @RequestMapping("/updateOrderVip")
   @ResponseBody
   public String updateOrderVip(OrderVip orderVip){
      List<OrderVip> list = new ArrayList<>();
      list.add(orderVip);
      if(orderVipService.updateBatchById(list)){
         return "修改成功";
      }else{
         return "修改失败";
      }
   }


   //返回添加页面
   @RequestMapping("/order_add")
   public String orderAdd(){
      return "/Alert/order_add";
   }


   /**
    * 修改 更根据id修改状态
    * @param id
    * @return
    */
   @RequestMapping("/update")
   @ResponseBody
   public String update(Long id){
      return orderVipService.updateOrderState(id);
   }



   /**
    * 返回的是订单页面
    * @return 订单页面
    */
   @RequestMapping("/order_vip")
   public String index(String flag,Model model,String homeId){

      model.addAttribute("home_true",flag);
      model.addAttribute("InitHomeId",homeId);
      return "Order_management";
   }







}
